package com.star.mall.file;

import com.star.mall.file.model.IFile;

import java.io.InputStream;
import java.io.OutputStream;

/**
 * 文件服务
 * @author StarQ
 * @since 2021-05-04
 */
public interface FileService {

    /**
     * 上传文件，保存路径、文件名保存在file
     * @param file 文件
     * @param inputStream 输入流
     */
    void uploadFile(IFile file, InputStream inputStream);

    /**
     * 根据资源路径与文件名保存文件
     * @param inputStream 输入流
     * @param resourceLocation 资源路径
     * @param fileName 文件名
     */
    void saveFile(InputStream inputStream, String resourceLocation, String fileName);

    /**
     * 下载文件
     * @param resourceLocation 资源路径
     * @param fileName 文件名
     * @param outputStream 输出流
     */
    void downloadFile(String resourceLocation, String fileName, OutputStream outputStream);

    /**
     * 删除文件
     * @param resourceLocation 资源路径
     * @param fileName 文件名
     * @return 找不到文件或删除文件失败将返回false
     */
    boolean deleteFile(String resourceLocation, String fileName);
}
